<?php
namespace Lib\Encryption;
use Lib\Data;
/**
 * Enter description here ...
 * 
 * @author diotheos
 * @package Encryption
 */
abstract class DriverAbstract {
    /**
     * @var Data
     */
    protected $_options;
    
    private $_encryptMode = null;

    public $_secret = 'VerySecret1';
    
    public function __construct(){
        $this->_options = new Data();
        $this->init();
    }
    
    public function init(){}
    
    /**
     * Encodes string
     * 
     * @param string $item
     * @throws DriverException
     * @throws EncryptionException
     */
    public function encode($item = null){}
    
    /**
     * Decodes string
     * 
     * @param string $hash
     * @throws DriverException
     * @throws EncryptionException
     */
    public function decode($hash = null){}
    
    /**
     * Set driver options
     * 
     * @param array $options
     */
    public function setOptions($options = array()){
        $this->_options->setValues($options);
    }
}